package cn.itcast.utils;

import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * @author LT
 * @version 1.0.0
 * @ClassName MailUtil.java
 * @Description TODO 电子邮件工具类
 * @createTime 2020年04月27日 14:16:00
 */
public class MailUtil {

    //实现邮件发送的方法
    public static void sendMsg(String to, String subject, String content) throws MessagingException {
        Properties properties = new Properties();

        properties.setProperty("mail.smtp.host", "smtp.qq.com"); // 发邮箱服务器的地址  如果你使用的是QQ ： smtp.qq.com

        properties.setProperty("mail.smtp.auth", "true");        // 认证

        // 2.产生一个用于邮件发送的Session对象
        Session session = Session.getInstance(properties);

        // 3.产生一个邮件的消息对象
        MimeMessage message = new MimeMessage(session);

        // 4.设置消息的发送者
        Address fromAddr = new InternetAddress("840164190@qq.com");   // 发送者的账号
        message.setFrom(fromAddr);

        // 5.设置消息的接收者
        Address toAddr = new InternetAddress(to);

        // TO 直接发送  CC抄送    BCC密送
        message.setRecipient(MimeMessage.RecipientType.TO, toAddr);

        // 6.设置主题
        message.setSubject(subject);

        // 7.设置正文
        message.setText(content);

        //8.准备发送，得到火箭
        Transport transport = session.getTransport("smtp");
        //9.设置火箭的发射目标
        transport.connect("smtp.qq.com", "840164190@qq.com", "xiqebbczzcqfbcgf"); //这里的密码不是你登陆邮箱的面，而是你的授权码
        //10.发送
        transport.sendMessage(message, message.getAllRecipients());

        //11.关闭
        transport.close();
    }
}
